]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
inputMethod: Add signal/getter for surrounding text updates
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 20 Apr 2022 21:16:38 +0000 (23:16 +0200)
committerFlorian Müllner <fmuellner@gnome.org>
Wed, 10 Aug 2022 17:11:26 +0000 (17:11 +0000)
We need to keep track of those at places, add a signal and getter
so that this information can be accessed from the OSK.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2278>

js/misc/inputMethod.js

index fba2730bd1a483bb6927a4cafb2d352c0360ee23..1abe20ec256649457ccf175dbc73a830f5f432f7 100644 (file)
@@ -10,8 +10,11 @@ Gio._promisify(IBus.Bus.prototype,
 
 var HIDE_PANEL_TIME = 50;
 
-var InputMethod = GObject.registerClass(
-class InputMethod extends Clutter.InputMethod {
+var InputMethod = GObject.registerClass({
+    Signals: {
+        'surrounding-text-set': {},
+    },
+}, class InputMethod extends Clutter.InputMethod {
     _init() {
         super._init();
         this._hints = 0;
@@ -202,6 +205,8 @@ class InputMethod extends Clutter.InputMethod {
             this._emitRequestSurrounding();
         }
 
+        this._surroundingText = null;
+        this._surroundingTextCursor = null;
         this._preeditStr = null;
     }
 
@@ -214,6 +219,10 @@ class InputMethod extends Clutter.InputMethod {
     }
 
     vfunc_set_surrounding(text, cursor, anchor) {
+        this._surroundingText = text;
+        this._surroundingTextCursor = cursor;
+        this.emit('surrounding-text-set');
+
         if (!this._context || !text)
             return;
 
@@ -298,4 +307,8 @@ class InputMethod extends Clutter.InputMethod {
             });
         return true;
     }
+
+    getSurroundingText() {
+        return [this._surroundingText, this._surroundingTextCursor];
+    }
 });